This invention generally relates to scanning data into and out of scan paths in a system comprising digital devices. In particular, the present invention relates to the parallel scanning and reading of data into and out of said scan paths.
Boundary scanning provides a way of reading and writing test data into and out of digital devices in a physical system such as a computer system in order to test the devices. In one scheme described by the IEEE 1149.1 specification, the devices each have test inputs and outputs for writing data into and reading data out of internal rings of test registers. The rings include both data and command rings for accessing the registers and controlling register configuration. Likewise, the test inputs and outputs include data, address, and control lines for accessing these rings. The registers may be dedicated test registers or part of the operable device circuitry. They are strategically located within the device so that known data strings can be written into the data rings, read back, and compared with expected values in order to test the state or operability of the device. When the test inputs and outputs from different devices within a system are connected to one another to form device chains, multiple devices within a system can be simultaneously tested by writing larger test data strings into and reading the resulting data out of the chained (or serially connected) devices.
FIG. 1 diagrammatically shows a prior art physical system under test (xe2x80x9cPSUTxe2x80x9d) 100. System 100 generally includes N (one or more) device chains. Each device chain has one or more devices 120 xe2x80x9cchainedxe2x80x9d to one another. In the depicted embodiment, the first chain includes devices 120A1, 120B1, through 120X1; the second chain includes devices 120A2, 120B2, through 120Y2; and the Nth chain includes devices 120AN, 120BN, through 120ZN. Each device chain has an input and an output port. The input port allows data to be scanned into a device chain, and the output port allows data to be read out of a chain. Within each chain, the devices are serially connected to one another through their test inputs and outputs. However, with some systems, the chains maybe selectively re-configured to form different device chains with different device combinations.
Each device 120 has one or more rings 125. Each ring consists of one or more test registers. Each ring provides a path for data to enter and exit the device. As data is entered at one end of the ring, data leaves at the other end of the ring. Only one ring in a device can be active at a time. In the depicted figure, dashed lines indicate inactive rings, while the solid lines indicate active rings. The chained together combination of active rings in a device chain constitutes a scan path within that chain. With N device chains, the depicted PSUT 100 includes N possible simultaneously active scan paths 1 through N.
Boundary scan test systems (not shown) are used to scan test data strings into a scan path and read them back therefrom. These test systems generally include both hardware and software components. Among other things, the hardware operably connects the test system to the PSUT for accessing devices. They also execute the software components and provide a physical interface to a user. The software components perform various functions including executing test pattern files in response to a request from a user. A test pattern file (or pattern file) includes both register data and commands for testing a device type or an entire device chain within a PSUT. In executing a pattern file, the software generates scan path images (strings) from the pattern file register data for each scan path (or in turn, device chain) that includes a device that is to be tested pursuant to a given pattern file. A scan path image corresponds to a string of data for an entire scan path. By writing a suitable scan path image into a scan path, the test system can write appropriate data (from a pattern file) into selected scan paths or selected devices within the scan path. The software also has the capability of reading back from the scan path a scan path image and extracting or identifying the portions corresponding to the devices of interest being tested.
Conventional systems generally use pattern files that include data strings for entire scan paths. This requires less capable test systems because they don""t have to build a scan image, which requires knowledge of device locations within a given PSUT. Unfortunately, these less capable systems are limited in that they require separate pattern file sets matched to a particular PSUT. With complex systems such as high-end computer, medial and other systems, this can be costly since many system configuration combinations can exist due to many possible different device types (e.g., model, version) within a given system type. Other systems are capable of executing pattern files for device types rather than whole scan paths. Unfortunately, however, these systems build the scan path images and scan them into and/or out of the scan paths one scan path at a time. With complex systems having numerous devices, this can be highly inefficient.
The present invention provides an improved boundary scan test system that can scan device scan paths in a parallel manner. In one embodiment, an improved method for processing a scan command from a pattern file is provided. The scan command is associated with (e.g., includes, points to) device data that is to be scanned into physical system under test devices of a type specified by the command. Initially, a parallel device structure is acquired for the specified device type. The parallel device structure has one or more groups, each identifying one or more parallel scan paths of devices within the physical system under test. A scan image is then prepared for each of the one or more groups having one or more identified parallel scan paths with a device of the specified device type. For each group having one or more scan paths with a device of the specified device type, a scan request, with the scan image prepared for the group, is then generated for that group. The scan request, when provided to a utility unit, causes the unit to scan in parallel the scan image into the one or more scan paths of the group in order to scan the test device data into the devices of the specified device type within the group.